package contratosonline.ejb;

import java.sql.Date;
import java.util.List;

import contratosonline.entity.Campus;
import contratosonline.entity.Contrato;
import contratosonline.entity.FiscalContrato;
import contratosonline.entity.LicitacaoOrigem;
import contratosonline.entity.Setor;
import contratosonline.entity.TermoAditivo;
import contratosonline.entity.VigenciaContratos;

public interface ControllerEJBFacadeLocal {

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#persiste(contratosonline.entity.Campus)
	 */
	public abstract void persiste(Campus c);

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#persiste(contratosonline.entity.Contrato)
	 */
	public abstract void persiste(Contrato c);

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#persiste(contratosonline.entity.FiscalContrato)
	 */
	public abstract void persiste(FiscalContrato f);

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#persiste(contratosonline.entity.LicitacaoOrigem)
	 */
	public abstract void persiste(LicitacaoOrigem l);

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#persiste(contratosonline.entity.Setor)
	 */
	public abstract void persiste(Setor s);

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#persiste(contratosonline.entity.TermoAditivo)
	 */
	public abstract void persiste(TermoAditivo t);

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#altera(contratosonline.entity.Campus)
	 */
	public abstract void altera(Campus c) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#altera(contratosonline.entity.Contrato)
	 */
	public abstract void altera(Contrato c) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#altera(contratosonline.entity.FiscalContrato)
	 */
	public abstract void altera(FiscalContrato f) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#altera(contratosonline.entity.LicitacaoOrigem)
	 */
	public abstract void altera(LicitacaoOrigem l) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#altera(contratosonline.entity.Setor)
	 */
	public abstract void altera(Setor s) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#altera(contratosonline.entity.TermoAditivo)
	 */
	public abstract void altera(TermoAditivo t) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#exclui(contratosonline.entity.Campus)
	 */
	public abstract void exclui(Campus c) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#exclui(contratosonline.entity.Contrato)
	 */
	public abstract void exclui(Contrato c) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#exclui(contratosonline.entity.FiscalContrato)
	 */
	public abstract void exclui(FiscalContrato f) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#exclui(contratosonline.entity.LicitacaoOrigem)
	 */
	public abstract void exclui(LicitacaoOrigem l) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#exclui(contratosonline.entity.Setor)
	 */
	public abstract void exclui(Setor s) throws Exception;

	/* (non-Javadoc)
	 * @see contratosonline.ejb.ControllerEJBFacadeLocal#exclui(contratosonline.entity.TermoAditivo)
	 */
	public abstract void exclui(TermoAditivo t) throws Exception;

	public abstract List<Campus> findCampusByName(String nomeCampus);

	public abstract List<Contrato> findContratoByNumeroAno(String num,
			String ano);

	public abstract List<VigenciaContratos> findVigenciaContratoAll();

	public abstract List<VigenciaContratos> findVigenciaContratoNoPeriodo(
			Date dataInicio, Date dataFim);
	
	public abstract List<TermoAditivo> findTermoAditivoByContrato(String numeroContrato, String anoContrato);
	
	public abstract TermoAditivo findTermoAditivoByContratoTermo(String numeroContrato, String anoContrato,Integer termo);

}